﻿#ifndef TL_UTILITY_H
#define TL_UTILITY_H

#define TL_INFINITY 2147483647


namespace TL {
    template<class T> T my_max(T a, T b)
    {
        return (a > b ? a : b);
    }
    template<class T> T my_max(T *a, T *b)
    {
        return (*a > *b ? *a : *b);
    }
    template<class T> T my_min(T a, T b)
    {
        return (a < b ? a : b);
    }
    template<class T> T my_min(T *a, T *b)
    {
        return (*a < *b ? *a : *b);
    }
    template<class T> void my_swap(T *a, T *b)
    {
        T temp = *a;

        *a = *b;
        *b = temp;
    }
}

#endif